package cn.ainit.sys.dz;

import java.util.List;

import javax.servlet.http.HttpSession;

import cn.ainit.sys.dz.entity.SysDzColumns;
import cn.ainit.sys.dz.entity.SysDzReturnJson;
import cn.ainit.sys.dz.entity.SysDzSource;
import cn.ainit.sys.framework.entity.SysColumns;
import cn.ainit.sys.query.datastore.DataStore;
import cn.ainit.sys.query.entity.QueryJson;

public interface SysDzService {

	/**
	 * 查找DzSource对象
	 * @param dzId
	 * @return
	 * @throws Exception
	 */
	SysDzSource loadDzSource(String dzId) throws Exception;
	/***
	 * 查找对照信息
	 * @param sqlText
	 * @param showPk
	 * @param showName
	 * @param page
	 * @param rows
	 * @return
	 */
	QueryJson queryDzSource(String sqlText, String showPk, String showName,
			int page, int rows) throws Exception;
	/**
	 * 加载所有信息
	 * @param sqlText
	 * @param showPk
	 * @param showName
	 * @param i
	 * @param j
	 * @return
	 * @throws Exception
	 */
	List queryDzSourceAll(String sqlText, String showPk, String showName,
			int i, int j)throws Exception;
	/**
	 * 加载对照字段
	 * @param dzId
	 * @param string
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-3-6 下午06:15:34
	 */
	List<SysDzColumns> colList(String dzId, String string)throws Exception;
	/**
	 * 查询数据
	 * @param string
	 * @param page
	 * @param rows
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-3-7 上午10:10:09
	 */
	SysDzReturnJson queryRowsBySqlPagination(String sql, int page, int rows)throws Exception;
	/**
	 * 根据dsId 查找本身的实体类
	 * @param dsId
	 * @return
	 * @throws Exception
	 * @author wyang
	 * @date : 2014-5-8 上午10:35:27
	 */
	DataStore getDataStore(String dsId) throws Exception;
	/**
	 * 查询数据
	 * @param sql
	 * @param page
	 * @param rows
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-5-20 下午03:48:55
	 */
	QueryJson loadEditData(String sql, int page, int rows) throws Exception;
	/**
	 * 加载原有的数据
	 * @param sql
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-5-20 下午05:32:16
	 */
	List queryOldRowsBySql(String sql)throws Exception;
	/***
	 * 根据dsid和coluname加载字段信息
	 * @param dsid
	 * @param coluname
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-5-21 上午08:51:40
	 */
	SysColumns loadSysColumns(String dsid, String coluname)throws Exception;
	/***
	 * 加载弹窗的所有字段名数据
	 * @param mulDsid
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-5-21 上午09:07:31
	 */
	List loadDzColumnNames(String mulDsid)throws Exception;
	/***
	 * 加载数据
	 * @param otherSql
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-5-24 下午05:37:27
	 */
	QueryJson queryDZOther(String otherSql,int page, int rows)throws Exception;
	
	/***
	 * 
	 * 得到编辑对照表的codeId
	 * @param comparisonId
	 * @return
	 * @throws Exception
	 */
	String getBjDzCodeId(String comparisonId) throws Exception;
	
	
	/***
	 * 
	 * 得到发行对照表的codeId
	 * @param comparisonId
	 * @return
	 * @throws Exception
	 */
	String getFxDzCodeId(String comparisonId) throws Exception;
	
	
	/****
	 * 根据dsId 查询一对多的所有的列
	 * @param dsId
	 * @return
	 * @throws Exception
	 */
	List<SysColumns> getMulConl(String dsId) throws Exception;
	/**
	 * 获取弹窗下拉的去除相似的对照信息
	 * @param dzId
	 * @param clnName
	 * @return
	 * @throws Exception
	 * @author Xuzq
	 * @date 2014-8-22 下午03:34:23
	 */
	List loadDzG(String dzId, String clnName) throws Exception;
	
	public String getCwDzCodeId(String comparisonId) throws Exception;
	
	
	/****
	 * 加载指定的对照信息
	 * @param sqlText
	 * @param showPk
	 * @param showName
	 * @return
	 * @throws Exception
	 * @author chenfeifei
	 * @version 创建时间：2014-12-16 下午05:18:58
	 */
	List queryDzSourceNoPage(String sqlText, String showPk, String showName,
			String filterSql) throws Exception ;
	
	
	/***
	 * 加载弹框对照信息的数据权限
	 * @param djId
	 * @param dsId
	 * @param param
	 * @return
	 * @throws Exception
	 */
	public String loadDzDataRight(String dzId, String dsId,HttpSession session,String param) throws Exception ;
	
	
	/***
	 * 当对照信息需要特定时
	 * @param djId
	 * @param dsId
	 * @param param
	 * @return
	 * @throws Exception
	 */
	public String loadDzAnotherPast(String dzId, String dsId) throws Exception ;
	
}
